|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.realtime.HighResolutionTime
Class HighResolutionTime
is the base class for AbsoluteTime
and RelativeTime
.
Not currently implemented
Field Summary | |
protected long |
millis
The millis of this HighResolutionTime |
protected Clock |
myClock
The Clock associated with this
HighResolutionTime |
protected long |
nanos
The nanos of this HighResolutionTime |
Constructor Summary | |
HighResolutionTime()
|
Method Summary | |
abstract AbsoluteTime |
absolute(Clock clock)
Convert the time of this to an absolute time, using the given instance of Clock
to determine the current time when necessary. |
abstract AbsoluteTime |
absolute(Clock clock,
AbsoluteTime dest)
Convert the time of this to an absolute time, using the given instance of Clock to
determine the current time when necessary. |
abstract java.lang.Object |
clone()
Return a clone of this. |
int |
compareTo(HighResolutionTime time)
Compares this HighResolutionTime
with the specified HighResolutionTime time. |
int |
compareTo(java.lang.Object object)
For the Comparable interface. |
boolean |
equals(HighResolutionTime time)
Returns true if the argument time has the same type and values as this. |
boolean |
equals(java.lang.Object object)
Returns true if the argument object has the same type and values as this. |
Clock |
getClock()
Returns a reference to the clock associated with this. |
long |
getMilliseconds()
Return the milliseconds part of this HighResolutionTime |
long |
getNanoseconds()
Return the nanoseconds part of this HighResolutionTime |
int |
hashCode()
Returns a hash code for this object in accordance with the general contract of Object.hashCode() . |
protected void |
normalize()
Normalize this HighResolutionTime , i.e.,
perform any carry operations necessary to make 0 <= nanos < 1000000 . |
abstract RelativeTime |
relative(Clock clock,
RelativeTime dest)
Convert the time of this to a relative time, using the given instance of Clock to
determine the current time when necessary. |
void |
set(HighResolutionTime time)
Change the value represented by this to that of the given time. |
void |
set(long millis)
Sets the millisecond component of this to the given argument, and the nanosecond component of this to 0. |
void |
set(long millis,
long nanos)
Sets the millisecond and nanosecond components of this. |
static void |
waitForObject(java.lang.Object target,
HighResolutionTime time)
Behaves exactly like target.wait()
but with the enhancement that it waits with a
precision of HighResolutionTime . |
Methods inherited from class java.lang.Object |
finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected long millis
HighResolutionTime
protected long nanos
HighResolutionTime
protected Clock myClock
Clock
associated with this
HighResolutionTime
Constructor Detail |
public HighResolutionTime()
Method Detail |
public abstract AbsoluteTime absolute(Clock clock)
Clock
to determine the current time when necessary. If clock
is null
the real-time clock
is assumed. A destination object is allocated to return the result. The clock
association of the result is with the clock passed as a parameter. See the derived
class comments for more specific information.
clock
- The instance of Clock
used to convert the time of this into absolute time,
and the new clock association for the result.
AbsoluteTime
objectpublic abstract AbsoluteTime absolute(Clock clock, AbsoluteTime dest)
Clock
to
determine the current time when necessary. If clock is null
the real-time clock is
assumed. If dest is not null
, the result is placed there and
returned. Otherwise, a
new object is allocated for the result. The clock association of the result is with
the clock passed as a parameter. See the derived class comments for more specific
information.
clock
- The instance of Clock
used to convert the time of this into absolute time,
and the new clock association for the result.dest
- If dest is not null
,
the result is placed there and returned. Otherwise,
a new object is allocated for the result.
null
,
otherwise the
result is returned in a newly allocated object. It is associated with the clock
parameter.public abstract java.lang.Object clone()
public int compareTo(HighResolutionTime time)
HighResolutionTime
with the specified HighResolutionTime
time.
time
- Compares with the time of this.
java.lang.ClassCastException
- - Thrown if the time parameter is not of
the same class as this.
java.lang.IllegalArgumentException
- - Thrown if the time parameter is
not associated with the same clock as this, or when the time parameter is
null
.public int compareTo(java.lang.Object object)
Comparable
interface.
compareTo
in interface java.lang.Comparable
object
- the given time
java.lang.IllegalArgumentException
- Thrown if the object
parameter is not associated with the same clock as this, or when the object
parameter is null
.
java.lang.ClassCastException
- Thrown if the specified
object's type prevents it from being compared to this Object.public boolean equals(HighResolutionTime time)
Equality includes clock association.
time
- the given time
public boolean equals(java.lang.Object object)
Equality includes clock association.
object
- the given time
public Clock getClock()
public final long getMilliseconds()
HighResolutionTime
public final long getNanoseconds()
HighResolutionTime
public int hashCode()
Object.hashCode()
. Time objects that are equal have the
same hash code.Not currently implemented
public abstract RelativeTime relative(Clock clock, RelativeTime dest)
Clock
to
determine the current time when necessary. If clock is null
the real-time clock is
assumed. If dest is not null
, the result is placed there and
returned. Otherwise, a
new object is allocated for the result. The clock association of the result is with
the clock passed as a parameter. See the derived class comments for more specific
information.
clock
- The instance of
Clock
used to convert the time of this into relative
time, and the new clock association for the result.dest
- If dest is not null
, the result is placed there and
returned. Otherwise,
a new object is allocated for the result.
RelativeTime
conversion in dest
if dest
is not null
, otherwise the result
is returned in a newly allocated object. It is associated with the clock parameter.public void set(HighResolutionTime time)
null
this method will throw an
IllegalArgumentException
.
If the type
of this and the type of the given time are not the same this method will throw
a ClassCastException
.
The clock associated with this is set to be the clock
associated with the time parameter.
time
- The new value for this.public void set(long millis)
set(millis, 0)
.
millis
- the new millisecond valuepublic void set(long millis, long nanos)
IllegalArgumentException
will be thrown. If after
normalization the time is negative then the time represented by this is set to
a negative value, but note that negative times are not supported everywhere.
For instance, a negative relative time is an invalid value for a periodic thread's
period.
millis
- The desired value for the millisecond component of this at the completion
of the call. The actual value is the result of parameter normalization.nanos
- The desired value for the nanosecond component of this at the completion
of the call. The actual value is the result of parameter normalization.
java.lang.IllegalArgumentException
- Thrown if there is an overflow in the
millisecond component while normalizing.protected void normalize()
HighResolutionTime
, i.e.,
perform any carry operations necessary to make 0 <= nanos < 1000000
.
public static void waitForObject(java.lang.Object target, HighResolutionTime time) throws java.lang.InterruptedException
target.wait()
but with the enhancement that it waits with a
precision of HighResolutionTime
.
As for target.wait()
, there is the possibility of
spurious wakeup behavior.The wait time may be relative or absolute, and it is controlled by the clock associated with it. If the wait time is relative, then the calling thread is blocked waiting on target for the amount of time given by time, and measured by the associated clock. If the wait time is absolute, then the calling thread is blocked waiting on target until the indicated time value is reached by the associated clock.
target
- The object on which to wait. The current thread must have a lock on
the object.time
- The time for which to wait. If it is
RelativeTime(0,0)
then wait indefinitely.
If it is null
then wait indefinitely.
java.lang.InterruptedException
- - Thrown if this schedulable object is
interrupted by RealtimeThread.interrupt()
or AsynchronouslyInterruptedException.fire()
while it is waiting.
java.lang.IllegalArgumentException
- Thrown if time represents a relative
time less than zero.
java.lang.IllegalMonitorStateException
- Thrown if target is not locked by
the caller.
java.lang.UnsupportedOperationException
- Thrown if the wait
operation is not supported using the clock associated with time.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |